/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * CadastrarEntrada.java
 *
 * Created on 09/12/2011, 13:17:17
 */
package visao;

import detalhamentoEntrada.DetalhamentoEntrada;
import entrada.Entrada;
import fachada.FachadaBDR;
import fornecedor.Fornecedor;
import funcionario.Funcionario;
import java.awt.Toolkit;
import java.sql.Date;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import javax.swing.ImageIcon;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import naturezaOperacao.NaturezaOperacao;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import util.HibernateUtil;
import util.KeyValue;
import util.Util;
import util.Fundo;

/**
 *
 * @author Alberto
 */
public class CadastrarEntrada extends javax.swing.JFrame {

    public String[] titulos = new String[]{"#", "Descrição Produto", "Compra", "$ ICMS", "% ICMS", "$ IPI", "% IPI", "Valor Unidade", "Valor Total", "Total Produto"};
    public DefaultTableModel defTable;
    public CadDetalhamentoEntrada cadastroCadDetalhamentoEntrada = new CadDetalhamentoEntrada();
    public Map<Integer, DetalhamentoEntrada> mapDetalhamentoEntrada = new HashMap<Integer, DetalhamentoEntrada>(); 

    /** Creates new form CadastrarEntrada */
    public CadastrarEntrada() {
        this.iniciarLista();
        initComponents();

        this.setTitle("Cadatrar Entrada");
        setIconImage(new ImageIcon(getClass().getResource("/Imagens/visao.gif")).getImage());
        this.setLocationRelativeTo(null);//Tela fica centralizada
        //this.setSize(Toolkit.getDefaultToolkit().getScreenSize());//deixa igual a tela
    }

    /**
     * Método que retorna a lista de Detalhaamento entrada
     * 
     * @return List<DetalhamentoEntrada> 
     */
    public Map<Integer, DetalhamentoEntrada> getListDetalhamentoEntrada(){
        return this.mapDetalhamentoEntrada;
    }

    public void atualizaValores(double valorTotal, int qtdProduto) {

        double totalnota = Double.parseDouble(jTextField_TotalNota.getText()) + valorTotal;
        double totalproduto = Double.parseDouble(jTextField_TotalProduto.getText()) + valorTotal;

        jTextField_TotalNota.setText(Double.toString(totalnota));
        jTextField_TotalProduto.setText(Double.toString(totalproduto));

    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel_Codigo = new javax.swing.JLabel();
        jLabel_Fornecedor = new javax.swing.JLabel();
        jLabel_Funcionario = new javax.swing.JLabel();
        jComboBox_Fornecedor = new javax.swing.JComboBox();
        jComboBox_idFuncionario = new javax.swing.JComboBox();
        jTextField_idCodigo = new javax.swing.JTextField();
        jTextField_ValorFrete = new javax.swing.JTextField();
        jLabel_ValorFrete = new javax.swing.JLabel();
        jTextField_Valoricms = new javax.swing.JTextField();
        jLabel_Valoricms = new javax.swing.JLabel();
        jTextField_ValoricmsSubst = new javax.swing.JTextField();
        jLabel_ValoricmsSubst = new javax.swing.JLabel();
        jTextField_Valoripi = new javax.swing.JTextField();
        jLabel_Valoripi = new javax.swing.JLabel();
        jLabel_ValorSeguro = new javax.swing.JLabel();
        jTextField_ValorSeguro = new javax.swing.JTextField();
        jTextField_ValorDesconto = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        jLabel_Frete = new javax.swing.JLabel();
        jTextField_Frete = new javax.swing.JTextField();
        jLabel_OutrasDespesas = new javax.swing.JLabel();
        jTextField_OutrasDespesas = new javax.swing.JTextField();
        jLabel_BaseCalculoicms = new javax.swing.JLabel();
        jTextField_Calcicms = new javax.swing.JTextField();
        jLabel_Serie = new javax.swing.JLabel();
        jTextField_Serie = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jTextField_TipoNota = new javax.swing.JTextField();
        jLabel_SubSerie = new javax.swing.JLabel();
        jTextField_SubSerie = new javax.swing.JTextField();
        jLabel_Quantidade = new javax.swing.JLabel();
        jTextField_Quantidade = new javax.swing.JTextField();
        jLabel_dtEmissao = new javax.swing.JLabel();
        jFormattedTextField_dtEmissao = new javax.swing.JFormattedTextField();
        jLabel_TotalProduto = new javax.swing.JLabel();
        jTextField_TotalProduto = new javax.swing.JTextField();
        jLabel_TotalNotas = new javax.swing.JLabel();
        jTextField_TotalNota = new javax.swing.JTextField();
        jFormattedTextField_dtEntrada = new javax.swing.JFormattedTextField();
        jLabel_dtEntrada = new javax.swing.JLabel();
        jTextField_CalcicmsSubst = new javax.swing.JTextField();
        jLabel_BaseCalculoicmsSubst = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jTextField_NumeroNota = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        list_natureza_operacao = new javax.swing.JComboBox();
        jScrollPane1 = new javax.swing.JScrollPane();
        lista_detalhamento_entrada = new javax.swing.JTable();
        bt_cadastrar_entrada = new javax.swing.JButton();
        bt_adicionar_detalhamento = new javax.swing.JButton();
        excluir_detalhamento = new javax.swing.JButton();
        bt_atualizar_lista = new javax.swing.JButton();
        mensagem = new javax.swing.JLabel();

        setTitle("Entrada");
        setResizable(false);
        setTitle("Cadastrar Entrada");
        setResizable(false);

        jLabel_Codigo.setText("Codigo :");

        jLabel_Fornecedor.setText("Fornecedor :");

        jLabel_Funcionario.setText("Funcionario :");

        try {
            FachadaBDR objFachadaBDR = FachadaBDR.getInstancia();
            List<Fornecedor> listFornecedor = objFachadaBDR.listarFornecedor("");
            jComboBox_Fornecedor.addItem(new KeyValue("--- Favor Selecionar ---", "0"));
            for (Fornecedor objForn : listFornecedor) {
                jComboBox_Fornecedor.addItem(new KeyValue(objForn.getContato(), Integer.toString(objForn.getIdFornecedor())));
            }
        } catch (Exception e) {
        }

        try {
            FachadaBDR objFachadaBDR = FachadaBDR.getInstancia();

            List<Funcionario> listFuncionario = objFachadaBDR.listarFuncionario("");

            jComboBox_idFuncionario.addItem(new KeyValue("--- Favor Selecionar ---","0"));
            for (Funcionario objFuncionario : listFuncionario) {
                jComboBox_idFuncionario.addItem(new KeyValue(objFuncionario.getNome(), Integer.toString(objFuncionario.getIdFuncionario())));
            }

        } catch (Exception e) {
        }

        jTextField_idCodigo.setText("0");
        jTextField_idCodigo.setEnabled(false);
        jTextField_idCodigo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField_idCodigoActionPerformed(evt);
            }
        });

        jTextField_ValorFrete = new JFormattedTextField(Util.setMascara("#####.##"));
        jTextField_ValorFrete.setText("00000.00");

        jLabel_ValorFrete.setText("Valor Frete :");

        jTextField_Valoricms = new JFormattedTextField(Util.setMascara("#####.##"));
        jTextField_Valoricms.setText("00000.00");

        jLabel_Valoricms.setText("Valor ICMS :");

        jTextField_ValoricmsSubst = new JFormattedTextField(Util.setMascara("#####.##"));
        jTextField_ValoricmsSubst.setText("00000.00");

        jLabel_ValoricmsSubst.setText("ICMS Substituição :");

        jTextField_Valoripi = new JFormattedTextField(Util.setMascara("#####.##"));
        jTextField_Valoripi.setText("00000.00");
        jTextField_Valoripi.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField_ValoripiActionPerformed(evt);
            }
        });

        jLabel_Valoripi.setText("Valor IPI :");

        jLabel_ValorSeguro.setText("Valor Seguro :");

        jTextField_ValorSeguro = new JFormattedTextField(Util.setMascara("#####.##"));
        jTextField_ValorSeguro.setText("00000.00");

        jTextField_ValorDesconto = new JFormattedTextField(Util.setMascara("#####.##"));
        jTextField_ValorDesconto.setText("00000.00");

        jLabel3.setText("Desconto :");

        jLabel_Frete.setText("Frete :");

        jTextField_Frete = new JFormattedTextField(Util.setMascara("#####.##"));
        jTextField_Frete.setText("00000.00");

        jLabel_OutrasDespesas.setText("Outras Despesas :");

        jTextField_OutrasDespesas = new JFormattedTextField(Util.setMascara("#####.##"));
        jTextField_OutrasDespesas.setText("00000.00");

        jLabel_BaseCalculoicms.setText("Calculo ICMS :");

        jTextField_Calcicms = new JFormattedTextField(Util.setMascara("#####.##"));
        jTextField_Calcicms.setText("00000.00");

        jLabel_Serie.setText("Serie :");

        jLabel2.setText("Tipo Nota :");

        jLabel_SubSerie.setText("SubSerie :");

        jTextField_SubSerie.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField_SubSerieActionPerformed(evt);
            }
        });

        jLabel_Quantidade.setText("Quantidade :");

        jLabel_dtEmissao.setText("Data Emissão :");

        jFormattedTextField_dtEmissao = new JFormattedTextField(Util.setMascara("##/##/####"));
        jFormattedTextField_dtEmissao.setText(Util.getDataAtual());

        jLabel_TotalProduto.setText("Total Produto :");

        jTextField_TotalProduto.setText("00000.00");

        jLabel_TotalNotas.setText("Total Nota :");

        jTextField_TotalNota.setText("00000.00");

        jFormattedTextField_dtEntrada = new JFormattedTextField(Util.setMascara("##/##/####"));
        jFormattedTextField_dtEntrada.setText(Util.getDataAtual());

        jLabel_dtEntrada.setText("Data Entrada :");

        jTextField_CalcicmsSubst = new JFormattedTextField(Util.setMascara("#####.##"));
        jTextField_CalcicmsSubst.setText("00000.00");

        jLabel_BaseCalculoicmsSubst.setText("Calculo ICMS Sub:");

        jLabel1.setText("Numero Nota :");

        jLabel4.setText("CFOP:");

        // Instanciando as variaveis
        Session s = null;
        Transaction t = null;
        try {
            s = HibernateUtil.getSessionFactory().getCurrentSession();
            t = (Transaction) s.beginTransaction();

            Query q = s.createQuery("from NaturezaOperacao");

            List<NaturezaOperacao> listNaturezaOperacao = q.list();
            t.commit();

            list_natureza_operacao.addItem(new KeyValue("--- Favor Selecionar ---","0"));
            for (NaturezaOperacao objNaturezaOperacao : listNaturezaOperacao) {
                list_natureza_operacao.addItem(new KeyValue(objNaturezaOperacao.getDescricaoNaturezaOperacao(), Integer.toString(objNaturezaOperacao.getIdNaturezaOperacao())));
            }
        } catch (Exception e) {
            t.rollback();
            mensagem.setText(e.getMessage());
        }

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel_Funcionario)
                                    .addComponent(jLabel_ValorFrete))
                                .addGap(18, 18, 18)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(jTextField_ValorDesconto, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jTextField_ValorFrete, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGap(18, 18, 18)
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                            .addGroup(jPanel1Layout.createSequentialGroup()
                                                .addComponent(jLabel_Valoricms)
                                                .addGap(18, 18, 18)
                                                .addComponent(jTextField_Valoricms))
                                            .addGroup(jPanel1Layout.createSequentialGroup()
                                                .addComponent(jLabel_Frete)
                                                .addGap(41, 41, 41)
                                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                    .addComponent(jLabel_SubSerie)
                                                    .addComponent(jTextField_Frete, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                    .addComponent(jLabel1)
                                                    .addComponent(jLabel_TotalNotas)))))
                                    .addComponent(jComboBox_idFuncionario, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addGap(81, 81, 81)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(jTextField_TotalProduto, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jTextField_TipoNota, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jTextField_Serie, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 64, Short.MAX_VALUE)))
                            .addComponent(jLabel_Serie)
                            .addComponent(jLabel3))
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(18, 18, 18)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addComponent(jTextField_TotalNota)
                                    .addComponent(jTextField_NumeroNota)
                                    .addComponent(jTextField_SubSerie, javax.swing.GroupLayout.DEFAULT_SIZE, 107, Short.MAX_VALUE))
                                .addGap(18, 18, 18)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jLabel_dtEntrada)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(jFormattedTextField_dtEntrada))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jLabel_dtEmissao)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(jFormattedTextField_dtEmissao))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(jLabel_Quantidade)
                                        .addGap(18, 18, 18)
                                        .addComponent(jTextField_Quantidade, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE))))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                                        .addGap(16, 16, 16)
                                        .addComponent(jLabel_OutrasDespesas)
                                        .addGap(18, 18, 18)
                                        .addComponent(jTextField_OutrasDespesas))
                                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                                        .addGap(18, 18, 18)
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(jLabel_ValoricmsSubst)
                                            .addComponent(jLabel_ValorSeguro))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                            .addComponent(jTextField_ValoricmsSubst, javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(jTextField_ValorSeguro, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 72, Short.MAX_VALUE))))
                                .addGap(18, 18, 18)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jLabel_BaseCalculoicmsSubst)
                                    .addComponent(jLabel_Valoripi)
                                    .addComponent(jLabel_BaseCalculoicms))
                                .addGap(18, 18, 18)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jTextField_Calcicms, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                        .addComponent(jTextField_Valoripi, javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jTextField_CalcicmsSubst, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE)))))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 72, Short.MAX_VALUE))
                    .addComponent(jLabel_TotalProduto)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel_Codigo)
                        .addGap(40, 40, 40)
                        .addComponent(jTextField_idCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(29, 29, 29)
                        .addComponent(jLabel_Fornecedor)
                        .addGap(18, 18, 18)
                        .addComponent(jComboBox_Fornecedor, 0, 212, Short.MAX_VALUE)
                        .addGap(18, 18, 18)
                        .addComponent(jLabel4)
                        .addGap(18, 18, 18)
                        .addComponent(list_natureza_operacao, javax.swing.GroupLayout.PREFERRED_SIZE, 184, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(68, 68, 68)))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(30, 30, 30)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel_Codigo)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextField_idCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(list_natureza_operacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jComboBox_Fornecedor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel_Fornecedor)
                            .addComponent(jLabel4))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel_Funcionario)
                        .addComponent(jComboBox_idFuncionario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel_ValorSeguro))
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jTextField_ValorSeguro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel_BaseCalculoicmsSubst)
                        .addComponent(jTextField_CalcicmsSubst, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(24, 24, 24)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel_ValorFrete)
                    .addComponent(jTextField_ValorFrete, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel_Valoricms)
                    .addComponent(jTextField_Valoricms, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel_ValoricmsSubst)
                    .addComponent(jTextField_ValoricmsSubst, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel_Valoripi)
                    .addComponent(jTextField_Valoripi, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel3)
                        .addComponent(jLabel_Frete)
                        .addComponent(jTextField_ValorDesconto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jTextField_Frete, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jLabel_OutrasDespesas)
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jTextField_OutrasDespesas, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel_BaseCalculoicms, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jTextField_Calcicms, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(24, 24, 24)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jTextField_SubSerie, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jLabel_Quantidade)
                                .addComponent(jTextField_Quantidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel_Serie)
                                .addComponent(jTextField_Serie, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addGap(12, 12, 12)
                                .addComponent(jLabel_TotalProduto))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jTextField_TipoNota, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel1)
                                    .addComponent(jTextField_NumeroNota, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel_dtEmissao, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jFormattedTextField_dtEmissao, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jTextField_TotalProduto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel_TotalNotas)
                                    .addComponent(jTextField_TotalNota, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel_dtEntrada)
                                    .addComponent(jFormattedTextField_dtEntrada, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                    .addComponent(jLabel_SubSerie))
                .addContainerGap(25, Short.MAX_VALUE))
        );

        lista_detalhamento_entrada.setModel(this.defTable);
        jScrollPane1.setViewportView(lista_detalhamento_entrada);

        bt_cadastrar_entrada.setText("Entrada Material");
        bt_cadastrar_entrada.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_cadastrar_entradaActionPerformed(evt);
            }
        });

        bt_adicionar_detalhamento.setText("Novo Detalhamento");
        bt_adicionar_detalhamento.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_adicionar_detalhamentoActionPerformed(evt);
            }
        });

        excluir_detalhamento.setText("Excluir Detalhamento");
        excluir_detalhamento.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                excluir_detalhamentoActionPerformed(evt);
            }
        });

        bt_atualizar_lista.setText("Atualizar Detalhamento");
        bt_atualizar_lista.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_atualizar_listaActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(mensagem, javax.swing.GroupLayout.PREFERRED_SIZE, 845, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(bt_cadastrar_entrada, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(49, 49, 49)
                            .addComponent(bt_adicionar_detalhamento)
                            .addGap(58, 58, 58)
                            .addComponent(bt_atualizar_lista)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(excluir_detalhamento, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                            .addGap(10, 10, 10)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jPanel1, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 843, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(bt_cadastrar_entrada)
                    .addComponent(bt_adicionar_detalhamento)
                    .addComponent(bt_atualizar_lista)
                    .addComponent(excluir_detalhamento))
                .addGap(18, 18, 18)
                .addComponent(mensagem, javax.swing.GroupLayout.DEFAULT_SIZE, 51, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jTextField_idCodigoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField_idCodigoActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_jTextField_idCodigoActionPerformed

    private void jTextField_SubSerieActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField_SubSerieActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextField_SubSerieActionPerformed

    private void bt_adicionar_detalhamentoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_adicionar_detalhamentoActionPerformed
        try {
            if (!this.cadastroCadDetalhamentoEntrada.isVisible()) {
                this.cadastroCadDetalhamentoEntrada = new CadDetalhamentoEntrada(0, this);
                this.cadastroCadDetalhamentoEntrada.setVisible(true);
            }
        } catch (Exception e) {
        }
    }//GEN-LAST:event_bt_adicionar_detalhamentoActionPerformed

    private void jTextField_ValoripiActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField_ValoripiActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextField_ValoripiActionPerformed

    private void bt_atualizar_listaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_atualizar_listaActionPerformed
        this.atualizaLista();
    }//GEN-LAST:event_bt_atualizar_listaActionPerformed

    private void bt_cadastrar_entradaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_cadastrar_entradaActionPerformed

        int cancelar = JOptionPane.showConfirmDialog(null, "Deseja 'Confirmar' esta operação?");
        if (cancelar == JOptionPane.YES_OPTION) {
            // Recuperando os dados
            // TODO add your handling code here:
            int idEntrada = Integer.parseInt(jTextField_idCodigo.getText());
            int quantidadeproduto = Integer.parseInt(jTextField_Quantidade.getText());
            int tiponota = Integer.parseInt(jTextField_TipoNota.getText());
            int idFornecedor = Integer.parseInt(((KeyValue) jComboBox_Fornecedor.getSelectedItem()).getValue());
            int idFuncionario = Integer.parseInt(((KeyValue) jComboBox_idFuncionario.getSelectedItem()).getValue());
            int idNaturezaOperacao = Integer.parseInt(((KeyValue) list_natureza_operacao.getSelectedItem()).getValue());

            double calcicms = Double.parseDouble(jTextField_Calcicms.getText());
            double calcicmssubst = Double.parseDouble(jTextField_CalcicmsSubst.getText());
            double custofrete = Double.parseDouble(jTextField_Frete.getText());
            double desconto = Double.parseDouble(jTextField_ValorDesconto.getText());
            double outrodescontos = Double.parseDouble(jTextField_OutrasDespesas.getText());
            double totalnota = Double.parseDouble(jTextField_TotalNota.getText());
            double totalproduto = Double.parseDouble(jTextField_TotalProduto.getText());
            double frete = Double.parseDouble(jTextField_ValorFrete.getText());
            double icms = Double.parseDouble(jTextField_Valoricms.getText());
            double icmsSubst = Double.parseDouble(jTextField_ValoricmsSubst.getText());
            double ipi = Double.parseDouble(jTextField_Valoripi.getText());
            double seguro = Double.parseDouble(jTextField_ValorSeguro.getText());

            String numeronota = jTextField_NumeroNota.getText();
            String serie = jTextField_Serie.getText();
            String subserie = jTextField_SubSerie.getText();


            Date dtemissao = Date.valueOf(Util.formatarDataBanco(jFormattedTextField_dtEmissao.getText()));
            Date dtentrada = Date.valueOf(Util.formatarDataBanco(jFormattedTextField_dtEntrada.getText()));

            Session s = null;
            Transaction t = null;
            NaturezaOperacao objNaturezaOperacao = null;
            try {
                s = HibernateUtil.getSessionFactory().getCurrentSession();
                t = s.beginTransaction();

                objNaturezaOperacao = (NaturezaOperacao) s.get(NaturezaOperacao.class, idNaturezaOperacao);

                t.commit();

            } catch (Exception e) {
                t.rollback();
            }
            
            try {
                FachadaBDR objFachadaBDR = FachadaBDR.getInstancia();

                Fornecedor fornecedor = objFachadaBDR.procurarFornecedor(idFornecedor);
                Funcionario funcionario = objFachadaBDR.procurarFuncionario(idFuncionario);

                // Criando o objeto Entrada
                Entrada entrada = new Entrada();
                // setando os valores
                entrada.setIdEntrada(idEntrada);
                entrada.setFuncionario(funcionario);
                entrada.setFornecedor(fornecedor);
                entrada.setNaturezaOperacao(objNaturezaOperacao);
                entrada.setNumeroNota(numeronota);
                entrada.setTipoNota(tiponota);
                entrada.setSerie(serie);
                entrada.setSubserie(subserie);
                entrada.setCustoFrete(custofrete);
                entrada.setDataEmissao(dtemissao);
                entrada.setDataEntrada(dtentrada);
                entrada.setQtdProdutosNota(quantidadeproduto);
                entrada.setCalculoIcmsSubstituicao(calcicms);
                entrada.setValorIcms(icms);
                entrada.setValorIcmsSubstituicao(icmsSubst);
                entrada.setValorFrete(frete);
                entrada.setValorSeguro(seguro);
                entrada.setDesconto(desconto);
                entrada.setOutrasDespesas(outrodescontos);
                entrada.setValorIpi(ipi);
                entrada.setTotalProdutos(totalproduto);
                entrada.setTotalNotas(totalnota);
                entrada.setBaseCalculoIcms(totalnota);
                
                // convertendo o colection map para o colection list
                List<DetalhamentoEntrada> listDetalhamentoEntrada = new ArrayList<DetalhamentoEntrada>(this.mapDetalhamentoEntrada.values());
                
                // setando o valor em LIST
                entrada.setDetalhamentoEntradas(listDetalhamentoEntrada);

                objFachadaBDR.cadastrarEntrada(entrada);

                // Rezando todos os campos
                String acao = (idEntrada == 0) ? "Cadastarada" : "Editada";

                mensagem.setText("Entrada " + acao + " com sucesso!!!");

                jTextField_idCodigo.setText("0");
                jTextField_Quantidade.setText("0");
                jTextField_TipoNota.setText("");
                jComboBox_Fornecedor.setSelectedIndex(0);
                jComboBox_idFuncionario.setSelectedIndex(0);
                list_natureza_operacao.setSelectedIndex(0);

                jTextField_Calcicms.setText("00000.00");
                jTextField_CalcicmsSubst.setText("00000.00");
                jTextField_Frete.setText("000000.00");
                jTextField_ValorDesconto.setText("00000.00");
                jTextField_OutrasDespesas.setText("00000.00");
                jTextField_TotalNota.setText("00000.00");
                jTextField_TotalProduto.setText("00000.00");
                jTextField_ValorFrete.setText("00000.00");
                jTextField_Valoricms.setText("00000.00");
                jTextField_ValoricmsSubst.setText("00000.00");
                jTextField_Valoripi.setText("00000.00");
                jTextField_ValorSeguro.setText("00000.00");
                jTextField_NumeroNota.setText("");
                jTextField_Serie.setText("");
                jTextField_SubSerie.setText("");
                jFormattedTextField_dtEmissao.setText(Util.getDataAtual());
                jFormattedTextField_dtEntrada.setText(Util.getDataAtual());
                
                this.mapDetalhamentoEntrada.clear();
                this.iniciarLista();
                this.lista_detalhamento_entrada.setModel(this.defTable);
                this.lista_detalhamento_entrada.revalidate();
                
            } catch (Exception ex) {
                mensagem.setText(ex.getMessage());
            }
        }
    }//GEN-LAST:event_bt_cadastrar_entradaActionPerformed

    private void excluir_detalhamentoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_excluir_detalhamentoActionPerformed
        try {
            // pegando a linha selecionada
            if (this.lista_detalhamento_entrada.getSelectedColumnCount() == 0 || this.lista_detalhamento_entrada.getSelectedColumnCount() > 1) {
                throw new Exception("Favor selecionar um Nivel");
            }

            int cancelar = JOptionPane.showConfirmDialog(null, "Deseja Remover este Detalhamento?");
            if (cancelar == JOptionPane.YES_OPTION) {
                try {
                    int linha = this.lista_detalhamento_entrada.getSelectedRow();

                    // recuperando o Cpf do funcionario
                    Integer idDetalhe = (Integer) this.lista_detalhamento_entrada.getValueAt(linha,0); 
                    
                    this.mapDetalhamentoEntrada.remove(idDetalhe);

                    mensagem.setText("Removido com sucesso!");
                    
                    // atualizando a lisagem
                    this.atualizaLista();
                } catch (Exception ex) {
                    mensagem.setText(ex.getMessage());
                }
            }
        } catch (Exception e) {
            mensagem.setText(e.getMessage());
        }
    }//GEN-LAST:event_excluir_detalhamentoActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new CadastrarEntrada().setVisible(true);
            }
        });
    }
     
     public void iniciarLista(){
         Object[][] resposta = new Object[this.mapDetalhamentoEntrada.size()][7];

        // Setando a tabela
        this.defTable = new DefaultTableModel(resposta, titulos) {

            @Override
            public boolean isCellEditable(int row, int col) {
                return false;
            }
        };
        
     }
     
    
     public void atualizaLista(DetalhamentoEntrada objDetalhamentoEntrada) {
        //{"#", "Descrição Produto", "Compra", "$ ICMS", "% ICMS", "$ IPI", "% IPI", "Valor Unidade", "Valor Total", "Total Produto"}
        this.mapDetalhamentoEntrada.put(new Integer(objDetalhamentoEntrada.getCompra().getIdCompra()), objDetalhamentoEntrada);
        
         Object[][] resposta = new Object[this.mapDetalhamentoEntrada.size()][10];

        try {
             int contador = 0;
            // percorre o set de entradas do mapa  
            for (Entry<Integer, DetalhamentoEntrada> entrada : this.mapDetalhamentoEntrada.entrySet()) {    
                DetalhamentoEntrada objDetalhamento = entrada.getValue();
                // setando os valores
                resposta[contador][0] = objDetalhamento.getCompra().getIdCompra();
                resposta[contador][1] = objDetalhamento.getDescricaoProduto().getDecsricaoProduto();
                resposta[contador][2] = objDetalhamento.getCompra().getIdCompra();
                resposta[contador][3] = objDetalhamento.getValorIcms();
                resposta[contador][4] = objDetalhamento.getPorcentagemIcms();
                resposta[contador][5] = objDetalhamento.getValorIpi();
                resposta[contador][6] = objDetalhamento.getPorcentagemIpi();
                resposta[contador][7] = objDetalhamento.getValorUnidade();
                resposta[contador][8] = objDetalhamento.getValorTotal();
                resposta[contador][9] = objDetalhamento.getQtdProduto();
                
                contador++;
            }  
             
         } catch (Exception e) {
             e.printStackTrace();
             System.out.println(e.getMessage());
         }
        
        // Setando a tabela
        this.defTable = new DefaultTableModel(resposta, titulos){   
              @Override  
              public boolean isCellEditable(int row, int col)   
              {   
                     return false;   
              }   
        };
        
        // Setando a nova listagem
        lista_detalhamento_entrada.setModel(this.defTable);
        // Atualizando a lista
        lista_detalhamento_entrada.revalidate();
    }
     
     public void atualizaLista() {
         // criando o objeto lita resposta
         Object[][] resposta = new Object[this.mapDetalhamentoEntrada.size()][10];
         
         try {
             int contador = 0;
            // percorre o set de entradas do mapa  
            for (Entry<Integer, DetalhamentoEntrada> entrada : this.mapDetalhamentoEntrada.entrySet()) {    
                DetalhamentoEntrada objDetalhamento = entrada.getValue();
                // setando os valores
                resposta[contador][0] = objDetalhamento.getCompra().getIdCompra();
                resposta[contador][1] = objDetalhamento.getDescricaoProduto().getDecsricaoProduto();
                resposta[contador][2] = objDetalhamento.getCompra().getIdCompra();
                resposta[contador][3] = objDetalhamento.getValorIcms();
                resposta[contador][4] = objDetalhamento.getPorcentagemIcms();
                resposta[contador][5] = objDetalhamento.getValorIpi();
                resposta[contador][6] = objDetalhamento.getPorcentagemIpi();
                resposta[contador][7] = objDetalhamento.getValorUnidade();
                resposta[contador][8] = objDetalhamento.getValorTotal();
                resposta[contador][9] = objDetalhamento.getQtdProduto();
                
                contador++;
            }  
             
         } catch (Exception e) {
             e.printStackTrace();
             System.out.println(e.getMessage());
         }
        
        // Setando a tabela
        this.defTable = new DefaultTableModel(resposta, titulos) {

            @Override
            public boolean isCellEditable(int row, int col) {
                return false;
            }
        };

        // Setando a nova listagem
        lista_detalhamento_entrada.setModel(this.defTable);
        // Atualizando a lista
        lista_detalhamento_entrada.revalidate();
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton bt_adicionar_detalhamento;
    private javax.swing.JButton bt_atualizar_lista;
    private javax.swing.JButton bt_cadastrar_entrada;
    private javax.swing.JButton excluir_detalhamento;
    private javax.swing.JComboBox jComboBox_Fornecedor;
    private javax.swing.JComboBox jComboBox_idFuncionario;
    private javax.swing.JFormattedTextField jFormattedTextField_dtEmissao;
    private javax.swing.JFormattedTextField jFormattedTextField_dtEntrada;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel_BaseCalculoicms;
    private javax.swing.JLabel jLabel_BaseCalculoicmsSubst;
    private javax.swing.JLabel jLabel_Codigo;
    private javax.swing.JLabel jLabel_Fornecedor;
    private javax.swing.JLabel jLabel_Frete;
    private javax.swing.JLabel jLabel_Funcionario;
    private javax.swing.JLabel jLabel_OutrasDespesas;
    private javax.swing.JLabel jLabel_Quantidade;
    private javax.swing.JLabel jLabel_Serie;
    private javax.swing.JLabel jLabel_SubSerie;
    private javax.swing.JLabel jLabel_TotalNotas;
    private javax.swing.JLabel jLabel_TotalProduto;
    private javax.swing.JLabel jLabel_ValorFrete;
    private javax.swing.JLabel jLabel_ValorSeguro;
    private javax.swing.JLabel jLabel_Valoricms;
    private javax.swing.JLabel jLabel_ValoricmsSubst;
    private javax.swing.JLabel jLabel_Valoripi;
    private javax.swing.JLabel jLabel_dtEmissao;
    private javax.swing.JLabel jLabel_dtEntrada;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField jTextField_Calcicms;
    private javax.swing.JTextField jTextField_CalcicmsSubst;
    private javax.swing.JTextField jTextField_Frete;
    private javax.swing.JTextField jTextField_NumeroNota;
    private javax.swing.JTextField jTextField_OutrasDespesas;
    private javax.swing.JTextField jTextField_Quantidade;
    private javax.swing.JTextField jTextField_Serie;
    private javax.swing.JTextField jTextField_SubSerie;
    private javax.swing.JTextField jTextField_TipoNota;
    private javax.swing.JTextField jTextField_TotalNota;
    private javax.swing.JTextField jTextField_TotalProduto;
    private javax.swing.JTextField jTextField_ValorDesconto;
    private javax.swing.JTextField jTextField_ValorFrete;
    private javax.swing.JTextField jTextField_ValorSeguro;
    private javax.swing.JTextField jTextField_Valoricms;
    private javax.swing.JTextField jTextField_ValoricmsSubst;
    private javax.swing.JTextField jTextField_Valoripi;
    private javax.swing.JTextField jTextField_idCodigo;
    private javax.swing.JComboBox list_natureza_operacao;
    private javax.swing.JTable lista_detalhamento_entrada;
    private javax.swing.JLabel mensagem;
    // End of variables declaration//GEN-END:variables
}
